package com.avalon.core.service;

import com.avalon.core.condition.Condition;
import com.avalon.core.exception.AvalonException;
import com.avalon.core.field.Field;
import com.avalon.core.model.Record;
import com.avalon.core.model.RecordRow;
import com.avalon.core.util.FieldValue;

public interface IUpdateService {
    Integer update(RecordRow recordRow, Condition condition) throws AvalonException;//更新记录 直接更新

    Integer update(RecordRow recordRow) throws AvalonException;//更新记录 检查满足更新条件 及联更新

    Integer updateMulti(Record record) throws AvalonException;//批量更新

    void setFieldValue(String fieldName, Object value, Integer id);//设置字段值 直接保存到数据库

    void setFieldValue(String fieldName, Object value, Condition condition);//设置字段值 直接保存到数据库

    void setFieldValue(Field field, Object value, Object id);//设置字段值 直接保存到数据库

    void setFieldValue(Field field, Object value, Condition condition);//设置字段值 直接保存到数据库

    void updateNumberValue(RecordRow recordRow);//更新数值字段 使用 name = name + value

    void updateNumberValue(RecordRow recordRow, Integer id);//更新数值字段 使用 name = name + value

    void updateNumberValue(RecordRow recordRow, Condition condition);//更新数值字段 使用 name = name + value

    void updateNumberValue(Field field, FieldValue value, Integer id);//更新数值字段 使用 name = name + value

    void updateNumberValue(String fieldName, FieldValue value, Integer id);//更新数值字段 使用 name = name + value

    void updateNumberValue(Field field, Object value, Integer id);//更新数值字段 使用 name = name + value

    void updateNumberValue(String fieldName, Object value, Integer id);//更新数值字段 使用 name = name + value

    void updateNumberValue(Field field, FieldValue value, Condition condition);//更新数值字段 使用 name = name + value

    void updateNumberValue(String fieldName, FieldValue value, Condition condition);//更新数值字段 使用 name = name + value

    void updateNumberValue(Field field, Object value, Condition condition);//更新数值字段 使用 name = name + value

    void updateNumberValue(String fieldName, Object value, Condition condition);//更新数值字段 使用 name = name + value
}
